package com.ruoyi.oa.service;

import com.ruoyi.oa.domain.OaAdminAsset;
import com.ruoyi.oa.domain.bo.OaAdminEntryBo;
import com.ruoyi.oa.domain.vo.OaAdminAssetVo;
import com.ruoyi.oa.domain.bo.OaAdminAssetBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.oa.domain.vo.OaTotalAssetVo;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

/**
 * 资产管理Service接口
 *
 * @author ruoyi
 * @date 2023-08-28
 */
public interface IOaAdminAssetService {

    /**
     * 查询资产管理
     */
    OaAdminAssetVo queryById(String id);

    /**
     * 查询资产管理列表
     */
    TableDataInfo<OaAdminAssetVo> queryPageList(OaAdminAssetBo bo, PageQuery pageQuery);

    /**
     * 查询资产管理列表
     */
    List<OaAdminAssetVo> queryList(OaAdminAssetBo bo);

    /**
     * 新增资产管理
     */
    Boolean insertByBo(OaAdminAssetBo bo);

    /**
     * 修改资产管理
     */
    Boolean updateByBo(OaAdminAssetBo bo);

    /**
     * 校验并批量删除资产管理信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);


    /**
     * 获取所有的编码
     * @return
     */
     List<String> getAllStandard(String assetType);

    List<String>  getAllProduct( String assetType);

    List<String> getAllProductNameByAssetCode(String assetType,String assetCode);
    List<String> getAllAssetCodeByProductName(String assetType,String productName);


    OaAdminAsset checkHasOneData(String assetType,String assetCode, String productName);

    TableDataInfo<OaTotalAssetVo> getAssetHistory(OaAdminEntryBo bo, PageQuery pageQuery);
}
